
 
<link rel="stylesheet" href="./res/style.css">
<link rel="stylesheet" href="./res/website.css">
    

<section class="normal markdown-section">
                                
    <h2 id="决策引擎系统部署">决策引擎系统部署</h2>
<h4 id="本文档是fibo-rule决策引擎系统部署手册，包含如下内容：">本文档是FIBO Rule决策引擎系统部署手册，包含如下内容：</h4>
<pre><code> （1）服务器准备
（2）中间件准备
（3）系统部署
（4）系统验证
</code></pre><h3 id="11-服务器准备">1.1 服务器准备</h3>
<p>准备服务器，服务器建议预安装CentOS。建议准备的服务器如下：</p>
<table>
<thead>
<tr>
<th style="text-align:left">服务器</th>
<th style="text-align:left">用处</th>
<th>前/后端</th>
<th>最低配置</th>
<th>系统版本</th>
<th>需要安装的软件</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">h5-enginex-manager</td>
<td style="text-align:left">数字决策平台</td>
<td>前端</td>
<td>2核4G</td>
<td>centos7以上</td>
<td>nginx 1.14.1 <br> node 12.22.7</td>
</tr>
<tr>
<td style="text-align:left">h5-datax-manager</td>
<td style="text-align:left">数据中心</td>
<td>前端</td>
<td>2核4G</td>
<td>centos7以上</td>
<td>nginx 1.14.1 <br> node 12.22.7</td>
</tr>
<tr>
<td style="text-align:left">h5-auth-manager</td>
<td style="text-align:left">权限系统</td>
<td>前端</td>
<td>2核4G</td>
<td>centos7以上</td>
<td>nginx 1.14.1 <br> node 12.22.7</td>
</tr>
<tr>
<td style="text-align:left">ddp-manager-web</td>
<td style="text-align:left">后台管理系统服务</td>
<td>后端</td>
<td>4核8G</td>
<td>centos7以上</td>
<td>jdk 1.8</td>
</tr>
<tr>
<td style="text-align:left">ddp-runner-api</td>
<td style="text-align:left">执行器API服务</td>
<td>后端</td>
<td>4核8G</td>
<td>centos7以上</td>
<td>jdk 1.8</td>
</tr>
</tbody>
</table>
<p>注：如果是测试或者业务量不大，前端三个服务可以部署在一台服务器，后端两个服务可以部署在一台服务器，采用不同的端口号来区分。</p>
<h3 id="12-中间件准备">1.2 中间件准备</h3>
<p>Java服务运营需要依赖Mysql和Redis。根据公司内部的情况，可以使用服务器独立部署所需中间件，或者使用云平台开通相关实例。需要安装的中间件具体信息如下：</p>
<table>
<thead>
<tr>
<th style="text-align:center">中间件</th>
<th style="text-align:center">版本号</th>
<th style="text-align:center">最低配置</th>
<th style="text-align:center">用处 </th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">MySQL</td>
<td style="text-align:center">5.7以上</td>
<td style="text-align:center">2核4G</td>
<td style="text-align:center">存储 </td>
</tr>
<tr>
<td style="text-align:center">Redis</td>
<td style="text-align:center">4.0 以上</td>
<td style="text-align:center">2核4G</td>
<td style="text-align:center">缓存 </td>
</tr>
<tr>
<td style="text-align:center">Canal</td>
<td style="text-align:center">1.1 以上</td>
<td style="text-align:center">2核4G</td>
<td style="text-align:center">数据同步 </td>
</tr>
</tbody>
</table>
<h4 id="1mysql安装">1).MySQL安装</h4>
<p>参考：<a href="https://www.jianshu.com/p/276d59cbc529" target="_blank">https://www.jianshu.com/p/276d59cbc529</a></p>
<h4 id="2redis安装">2).Redis安装</h4>
<p>参考：<a href="https://www.cnblogs.com/oktokeep/p/15737710.html" target="_blank">https://www.cnblogs.com/oktokeep/p/15737710.html</a></p>
<h4 id="3canal安装">3).Canal安装</h4>
<p>参考：<a href="https://blog.csdn.net/EDT777/article/details/114576466" target="_blank">https://blog.csdn.net/EDT777/article/details/114576466</a></p>
<h3 id="13-系统部署">1.3 系统部署</h3>
<table>
<thead>
<tr>
<th style="text-align:center">执行顺序</th>
<th style="text-align:center">部署内容</th>
<th>包名</th>
<th>部署服务器</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1</td>
<td style="text-align:center">执行SQL脚本</td>
<td>ddp-2.0.sql</td>
<td>MySQL数据库实例</td>
</tr>
<tr>
<td style="text-align:center">2</td>
<td style="text-align:center">后台管理系统服务</td>
<td>ddp-manager-web-1.0-SNAPSHOT.jar</td>
<td>ddp-manager-web</td>
</tr>
<tr>
<td style="text-align:center">3</td>
<td style="text-align:center">执行器API服务</td>
<td>ddp-runner-api-1.0-SNAPSHOT.jar</td>
<td>ddp-runner-api</td>
</tr>
<tr>
<td style="text-align:center">4</td>
<td style="text-align:center">数字决策平台</td>
<td>h5-enginex-manager</td>
<td>h5-enginex-manager</td>
</tr>
<tr>
<td style="text-align:center">5</td>
<td style="text-align:center">数据中心</td>
<td>h5-datax-manager</td>
<td>h5-datax-manager</td>
</tr>
<tr>
<td style="text-align:center">6</td>
<td style="text-align:center">权限系统</td>
<td>h5-auth-manager</td>
<td>h5-auth-manager</td>
</tr>
</tbody>
</table>
<p>注：具体sql文件、jar包、h5包，由对接的技术支持人员提供</p>
<h4 id="1执行sql脚本">1).执行SQL脚本</h4>
<p>登陆MySQL所在的服务器，然后执行命令(参考)</p>
<pre><code>mysql -u root -p 
source sql/ddp-2.0.sql
</code></pre><p>或者使用数据库管理工具，导入SQL文件执行</p>
<h4 id="2部署后台管理系统服务">2).部署后台管理系统服务</h4>
<p>（1）如果是源代码，先在ddp/ddp-manager-web目录下执行如下maven命令进行打包：</p>
<pre><code> mvn clean compile package -Dmaven.test.skip=true
</code></pre><p>（2）登陆ddp-manager-web服务器，执行命令（参考）</p>
<pre><code>nohup java -jar $JAR路径 -Dfile.encoding=utf-8 --spring.profiles.active=dev --server.port=$PORT &amp;
</code></pre><p>$JAR路径为ddp-manager-web-1.0-SNAPSHOT.jar的文件位置；</p>
<p>--spring.profiles.active参数默认为dev，启动命令可以省略。关于配置文件里面中间件信息的修改可以在启动目录下创建config目录，然后单独放一份application-dev.properties文件即可；</p>
<p>--server.port参数默认为8080，启动命令可以省略；</p>
<h4 id="3部署执行器api服务">3).部署执行器API服务</h4>
<p>（1）如果是源代码，先在ddp/ddp-runner-api目录下执行如下maven命令进行打包：</p>
<pre><code> mvn clean compile package -Dmaven.test.skip=true
</code></pre><p>（2）登陆ddp-runner-api服务器，执行命令（参考）</p>
<pre><code>nohup java -jar $JAR路径 -Dfile.encoding=utf-8 --spring.profiles.active=dev --server.port=$PORT &amp;
</code></pre><p>$JAR路径为ddp-runner-api-1.0-SNAPSHOT.jar的文件位置；</p>
<p>--spring.profiles.active参数默认为dev，启动命令可以省略。关于配置文件里面中间件信息的修改可以在启动目录下创建config目录，然后单独放一份application-dev.properties文件即可；</p>
<p>--server.port参数默认为8081，启动命令可以省略；</p>
<h4 id="4部署数字决策平台前端系统">4).部署数字决策平台前端系统</h4>
<p>（1）如果是源代码，先通过npm run build命令打包vue项目，把dist文件夹重命名为h5-enginex-manager；</p>
<p>（2）把h5-enginex-manager文件夹上传到服务器(h5-enginex-manager)上；</p>
<p>（3）登陆h5-enginex-manager服务器,进入nginx配置目录（例如：/etc/nginx/conf.d)，在conf.d目录下新建配置文件 h5-enginex-manager.conf<br>新增参考内容</p>
<pre><code>server {                                                                                                                                                     
listen       80;                                                                                                                                         
server_name  127.0.0.1; #域名                                                                                                                             

location / {                                                                                                                                             
root /root/www/h5-enginex-manager;  #h5-enginex-manager 所在目录                                                                                                       
try_files $uri $uri/ /index.html;                                                                                                                    
index  index.html index.htm;                                                                                                                         
}                                                                                                                                                        

location /Riskmanage {                                                                                                                                   
proxy_redirect off;                                                                                                                                  
proxy_set_header Host $host;                                                                                                                         
proxy_set_header X-Real-IP $remote_addr;             
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                                                                                                
proxy_set_header Access-Control-Allow-Origin *;                                                                                                      
proxy_http_version 1.1;                                                                                                         
proxy_set_header Connection "";                                                                                     
proxy_pass http://xxx:8080/Riskmanage; #后端服务ddp-manager-web的地址                                                                                                       
}                                                                                                                                                        
}
</code></pre><h4 id="5部署数据中心前端系统">5).部署数据中心前端系统</h4>
<p>（1）如果是源代码，先通过npm run build命令打包vue项目，把dist文件夹重命名为h5-datax-manager；</p>
<p>（2）把h5-datax-manager文件夹上传到服务器(h5-datax-manager)上；</p>
<p>（3）登陆h5-datax-manager服务器,进入nginx配置目录（例如：/etc/nginx/conf.d)，在conf.d目录下新建配置文件 h5-datax-manager.conf<br>新增参考内容</p>
<pre><code>server {                                                                                                                                                     
listen       80;                                                                                                                                         
server_name  127.0.0.1; #域名                                                                                                                             

location / {                                                                                                                                             
root /root/www/h5-datax-manager;  #h5-datax-manager 所在目录                                                                                                       
try_files $uri $uri/ /index.html;                                                                                                                    
index  index.html index.htm;                                                                                                                         
}                                                                                                                                                        

location /Riskmanage {                                                                                                                                   
proxy_redirect off;                                                                                                                                  
proxy_set_header Host $host;                                                                                                                         
proxy_set_header X-Real-IP $remote_addr;             
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                                                                                                
proxy_set_header Access-Control-Allow-Origin *;                                                                                                      
proxy_http_version 1.1;                                                                                                         
proxy_set_header Connection "";                                                                                     
proxy_pass http://xxx:8080/Riskmanage; #后端服务ddp-manager-web的地址                                                                                                       
}                                                                                                                                                        
}
</code></pre><h4 id="6部署权限系统前端系统">6).部署权限系统前端系统</h4>
<p>（1）如果是源代码，先通过npm run build命令打包vue项目，把dist文件夹重命名为h5-auth-manager；</p>
<p>（2）把h5-auth-manager文件夹上传到服务器(h5-auth-manager)上；</p>
<p>（3）登陆h5-auth-manager服务器,进入nginx配置目录（例如：/etc/nginx/conf.d)，在conf.d目录下新建配置文件 h5-auth-manager.conf<br>新增参考内容</p>
<pre><code>server {                                                                                                                                                     
listen       80;                                                                                                                                         
server_name  127.0.0.1; #域名                                                                                                                             

location / {                                                                                                                                             
root /root/www/h5-auth-manager;  #h5-auth-manager 所在目录                                                                                                       
try_files $uri $uri/ /index.html;                                                                                                                    
index  index.html index.htm;                                                                                                                         
}                                                                                                                                                        

location /Riskmanage {                                                                                                                                   
proxy_redirect off;                                                                                                                                  
proxy_set_header Host $host;                                                                                                                         
proxy_set_header X-Real-IP $remote_addr;             
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                                                                                                
proxy_set_header Access-Control-Allow-Origin *;                                                                                                      
proxy_http_version 1.1;                                                                                                         
proxy_set_header Connection "";                                                                                     
proxy_pass http://xxx:8080/Riskmanage; #后端服务ddp-manager-web的地址                                                                                                       
}                                                                                                                                                        
}
</code></pre><h3 id="14-系统验证">1.4 系统验证</h3>
<h4 id="1后台管理系统验证">1).后台管理系统验证</h4>
<p>
    在浏览器中打开前端系统的服务器地址：
<a href="http://前端系统ip:端口号(80端口可省略)。显示登陆页面" target="_blank">http://前端系统ip:端口号(80端口可省略)。显示登陆页面</a>

<br>

<img src="../image/login.jpg" alt="登陆页面">  

</p>
<p>系统初始化账号：</p>
<p>sadmin / engine888!</p>
<p>admin / engine888!</p>
<p>输入账号密码登陆成功后，则说明系统部署成功。</p>
<h4 id="2执行器验证">2).执行器验证</h4>
<p>用postman进行接口调用验证，POST请求地址：</p>
<pre><code>http://执行器服务ip:端口号/runner/decision
</code></pre><p>调用参数：</p>
<pre><code class="lang-json">{
<span class="hljs-string">"biz_data"</span>: {
<span class="hljs-string">"businessId"</span>: <span class="hljs-string">""</span>,
<span class="hljs-string">"organId"</span>: <span class="hljs-number">46</span>,
<span class="hljs-string">"engineId"</span>: <span class="hljs-number">1</span>,
<span class="hljs-string">"fields"</span>: {

}
},
<span class="hljs-string">"biz_enc"</span>: <span class="hljs-string">"0"</span>,
<span class="hljs-string">"timestamp"</span>: <span class="hljs-number">1618883106147</span>
}
</code></pre>
<p>返回结果：</p>
<pre><code class="lang-json">{
<span class="hljs-string">"msg"</span>: <span class="hljs-string">"请求引擎不存在或尚未部署运行"</span>,
<span class="hljs-string">"data"</span>: <span class="hljs-string">""</span>,
<span class="hljs-string">"status"</span>: <span class="hljs-string">"0x0004"</span>
}
</code></pre>
<p>有结果返回，说明调用成功<br>Postman参考调用截图如下：
<img src="../image/postman.jpg" alt="Postman调用页面">  </p>

    
    </section>